package com.sugou.dao.support;

import java.io.Serializable;
import java.util.List;

import com.sugou.model.core.IdEntity;

/**
 * 基本增删改
 * 
 * @version 1.0 
 * @author Hunk.Tong &copy; Ustudy 游学网络
 * <b>Create Time:</b>2013-5-6 下午5:18:40
 */
public interface Dao<E extends Serializable> extends Serializable{
	
	/**
	 * 新增数据
	 * @param entity 新增对象
	 * @return 新增结果，影响行数信息
	 */
	Number insert(E entity);
	
	/**
	 * 更新修改数据
	 * @param entity 新增对象
	 * @return 新增结果或影响行数
	 */
	Number update(E entity);
	
	/**
	 * 新增或者修改
	 * @param entity 新增或者修改对象
	 * @return 新增或者修改影响行数
	 */
	Number save(E entity);
	
	/**
	 * 删除对象
	 * @param entity 删除的对象
	 * @return 删除影响的行数
	 */
	Number remove(E entity);
	
	/**
	 * 获取单个对象
	 * @return 单个对象查询
	 */
	IdEntity getEntity(Serializable tpl,Serializable... params);
	
	/**
	 * 查询数据
	 * @param stat 查询语句
	 * @return 查询结果集极其信息
	 */
	List<E> list(CharSequence stat);
}
